/**
 * @file e2_t2_q8.c
 * @date 2022-03-05
 * 
 * @copyright Copyright (c) 2022 cnzyx MIT Licence
 * 
 */

#include<stdlib.h>
#include<stdio.h>
#include<time.h>
#include<conio.h>
#include<string.h>

int main(int argc, char const *argv[])
{
    //UTF-8
    system("chcp 65001");

    int z,iswin=0,flag=0,chance=8,cnt=0;
    char a[8],container[]="_ _ _ _",temp;
    srand(time(NULL));
    z=rand();
    for(int i=0;i<7;i++){
        a[i]=z%10+48;
        a[++i]=' ';
        z/=10;
    }
    a[7]='\0';
    printf("游戏规则：您有%d次机会猜数，猜错扣除一次，猜对不扣除\n如需中途退出，请按键盘上的“Q”键\n重要提示：您的输入不会同步显示再屏幕上。",chance);
    printf("请开始猜数：%s\n",container);
    while((temp=getch())!='q'){
        printf("\n*************************************\n\n");
        for(int i=0;i<7;i+=2){
            if(temp==a[i]){
                flag=1;
                container[i]=a[i];
            }
        }
        if(flag){
            cnt=0;
            for(int i=0;i<7;i+=2){
                if(container[i]==a[i]){
                    cnt++;
                }
            }
            printf("本次猜对。\n");
            iswin=!strcmp(a,container);
            flag=0;
            if(iswin){
                printf("恭喜，您赢了,正确数字是：%s。\n\n",a);
                //Pause console
                system("pause");
                return 0;
            }
        }

        else{
            chance--;
            printf("抱歉，这次猜错了。\n");
            if(!chance){
                printf("次数用尽，您输了。正确数字是：%s。\n\n",a);
                //Pause console
                system("pause");
                return 0;
            }
        }
        printf("剩余机会：%d次，目前已猜对%d个数，请继续猜数：%s\n",chance,cnt,container);
    }
    return 0;
}
